home *** CD-ROM | disk | FTP | other *** search
/ PC World Interactive 7 / PC World Interactive 7.iso / program / qbprog.EXE / ANALIZ.BAS next >
BASIC Source File  |  1995-09-27  |  4KB  |  169 lines

  1. 'SoundBlaster ile kaydedilen ve dinlenen ses (voice=.VOC) dosyasìnìn
  2. 'analizini yapar
  3. 'Analiz edilecek dosyayì Dosya$ deºiƒkenine yerleƒtirin.
  4.  
  5. 'QBASIC Veya QB veya QBX de çalìƒìr.
  6.  
  7. 'Analiz edilecek dosyanìn adìnì girin
  8. Dosya$ = "D:\MUZIK\VOC\1.VOC"
  9.  
  10. COLOR 7, 1
  11. CLS
  12.  
  13. LOCATE 3, 1
  14. CLOSE #1
  15. OPEN Dosya$ FOR BINARY AS #1
  16. A$ = SPACE$(20)
  17. GET #1, , A$
  18. IF A$ <> "Creative Voice File" + CHR$(&H1A) THEN PRINT "Dosya voc deºil": END
  19. GET #1, , BaslamaYeri%
  20.  
  21. GET #1, , Versiyon%
  22. GET #1, , Kontrol%
  23. IF Versiyon% <> 4659 - Kontrol% THEN PRINT "Dosya voc deºil": END
  24. LOCATE CSRLIN, 8
  25. PRINT TAB(8); "╔"; STRING$(63, "═"); "╗"
  26. Mesaj$ = "Dosya adì=" + Dosya$ + " , Büyüklük=" + LTRIM$(STR$(LOF(1))) + " byte"
  27. GOSUB Mesaj
  28. LOCATE CSRLIN, 8
  29. PRINT TAB(8); "╠"; STRING$(63, "═"); "╣"
  30. DO
  31.   GOSUB DataAl
  32.   IF BlokTipi = 1 OR BlokTipi = 2 THEN
  33.       IF Devam = 0 THEN
  34.         Devam = 1
  35.         SesBuyuk = 0
  36.       END IF
  37.   ELSE
  38.       IF Devam = 1 THEN
  39.          Devam = 0
  40.          Mesaj$ = " Ses bloku Boy=" + LTRIM$(STR$(SesBuyuk)) + " Byte, Frekans=" + LTRIM$(STR$(Ornekleme)) + " Hz, Paketleme=1:" + LTRIM$(STR$(Paket))
  41.          GOSUB Mesaj
  42.       END IF
  43.   END IF
  44.   SELECT CASE BlokTipi
  45.     CASE 1
  46.      GOSUB Blok1
  47.     CASE 2
  48.      GOSUB Blok2
  49.     CASE 3
  50.      GOSUB Blok3
  51.     CASE 4
  52.      GOSUB Blok4
  53.     CASE 5
  54.      GOSUB Blok5
  55.     CASE 6
  56.      GOSUB Blok6
  57.     CASE 7
  58.      GOSUB Blok7
  59.     CASE 0
  60.      EXIT DO
  61.   END SELECT
  62. LOOP
  63.  
  64. Mesaj$ = " Dosya Sonu..."
  65. GOSUB Mesaj
  66. LOCATE CSRLIN, 8
  67. PRINT TAB(8); "╚"; STRING$(63, "═"); "╝"
  68. END
  69. Mesaj:
  70.   Mesaj$ = "║ " + LEFT$(Mesaj$ + SPACE$(62), 62) + "║"
  71.   LOCATE CSRLIN, 8
  72.   PRINT Mesaj$
  73. RETURN
  74.  
  75. DataAl:
  76. A$ = " "
  77. GET #1, , A$
  78. BlokTipi = ASC(A$)
  79. RETURN
  80.  
  81. BuyuklukAl:
  82.   Buyuk = 0
  83.   GOSUB DataAl
  84.   Buyuk = Buyuk + BlokTipi - 2
  85.   GOSUB DataAl
  86.   Buyuk = Buyuk + BlokTipi * 256
  87.   GOSUB DataAl
  88.   Buyuk = Buyuk + BlokTipi * 65536
  89. RETURN
  90.  
  91. Oku:
  92.   IF Buyuk - Yer > 12000 THEN Uzunluk = 12000 ELSE Uzunluk = Buyuk - Yer
  93.   A$ = SPACE$(Uzunluk)
  94.   GET #1, , A$
  95.   Yer = Yer + Uzunluk
  96.   SesBuyuk = SesBuyuk + Uzunluk
  97.   IF Yer <> Buyuk THEN GOTO Oku
  98. RETURN
  99.  
  100. Blok1:
  101.   GOSUB BuyuklukAl
  102.  
  103.   GOSUB DataAl
  104.   Ornekleme = 1000000 \ (256 - BlokTipi)
  105.  
  106.   GOSUB DataAl
  107.   Paket = 8 / (BlokTipi + 1)
  108.  
  109.   Yer = 0
  110.   GOSUB Oku
  111. RETURN
  112.  
  113. Blok2:
  114.   GOSUB BuyuklukAl
  115.   Yer = 0
  116.   GOSUB Oku
  117. RETURN
  118.  
  119. Blok3:
  120.   GOSUB BuyuklukAl
  121.   GOSUB DataAl
  122.   SessizOrnekleme = 1000000 \ (256 - BlokTipi)
  123.   Mesaj$ = " Sessizlik bloºu boy=" + LTRIM$(STR$(Buyuk)) + " byte, frekans=" + LTRIM$(STR$(SessizOrnekleme)) + " Hz"
  124.   GOSUB Mesaj
  125. RETURN
  126.  
  127. Blok4:
  128.   GOSUB BuyuklukAl
  129.   Marker = 0
  130.   GOSUB DataAl
  131.   Marker = Marker + BlokTipi
  132.   GOSUB DataAl
  133.   Marker = Marker + BlokTipi * 256
  134.   Mesaj$ = " Sürücü özel iƒareti, ÿƒaret=" + LTRIM$(STR$(Marker))
  135.   GOSUB Mesaj
  136. RETURN
  137.  
  138. Blok5:
  139.   GOSUB BuyuklukAl
  140.   Mesaj$ = ""
  141.   DO
  142.     GOSUB DataAl
  143.     Mesaj$ = Mesaj$ + CHR$(BlokTipi)
  144.     IF BlokTipi = 0 THEN EXIT DO
  145.   LOOP
  146.   Mesaj$ = " ASCII Mesaj bloºu boy=" + LTRIM$(STR$(Buyuk)) + " byte, mesaj baƒì: " + LEFT$(Mesaj$ + SPACE$(20), 20)
  147.   GOSUB Mesaj
  148. RETURN
  149.  
  150. Blok6:
  151.   GOSUB BuyuklukAl
  152.   Tekrar = 0
  153.   GOSUB DataAl
  154.   Tekrar = Tekrar + BlokTipi
  155.   GOSUB DataAl
  156.   Tekrar = Tekrar + BlokTipi * 256
  157.   Ek$ = LTRIM$(STR$(Tekrar)) + " adet"
  158.   IF Tekrar = 65535 THEN Ek$ = "Sonsuza kadar"
  159.   Mesaj$ = "*Tekrarlama baƒlangìcì, tekrarlama sayìsì=" + Ek$
  160.   GOSUB Mesaj
  161. RETURN
  162.  
  163. Blok7:
  164.   GOSUB BuyuklukAl
  165.   Mesaj$ = "*Tekrarlama Sonu.."
  166.   GOSUB Mesaj
  167. RETURN
  168.  
  169.